package KC;
	
import java.sql.*;
import java.text.SimpleDateFormat;

public class Unidad{
	private static final String DTE_FORMAT = "dd/MM/yyyy";
	//private static final String DTE_HORA   = "yyyy-MM.dd";
	//private static final String DTE_FECHA  = "hh:mm:ss";
	private static final java.text.SimpleDateFormat sdf 		= new java.text.SimpleDateFormat(DTE_FORMAT);
	//private static final java.text.SimpleDateFormat sdf_hora 	= new java.text.SimpleDateFormat(DTE_FORMAT);
	//private static final java.text.SimpleDateFormat sdf_fecha 	= new java.text.SimpleDateFormat(DTE_FORMAT);
	private static final String VOID = "";
	private static final boolean DEBUG_ST = true;
	
	
	/**
	 * Obtiene Descripcion de Almacen
	 * 
	 * @param conn
	 * @param str_codigo
	 * @return
	 * @throws Exception
	 */
	public static int alamcen(
				java.sql.Connection conn, 
				java.lang.String str_codigo)throws Exception{
		int int_retVal = 0;
		String str_query = 
			" 	SELECT DISTINCT id_almacen,  	   	" + 
			" 				  	codigo       	   	" +
			" 	FROM almacen 					   	" +
			"		WHERE codigo ='"+str_codigo+"' 	";
		java.sql.ResultSet rs_almacen = conn.createStatement().executeQuery(str_query);
		if(rs_almacen.next()){
			int_retVal = rs_almacen.getInt("id_almacen");
		}
		return int_retVal;
	}
	
	
	
	
	/**
	 * Inserta embarque
	 * 
	 * @param conn
	 * @param str_Fecha
	 * @param str_Id_emb
	 * @param str_Ruta
	 * @param str_Transporte
	 * @param str_Hora
	 * @param str_Proveedor
	 * @return
	 * @throws Exception
	 */
	public static String crear_embarque(
					java.sql.Connection conn,
					String str_Fecha,
					String str_Id_emb,
					String str_Ruta,
					String str_Transporte,
					String str_Hora,
					String str_Proveedor )throws Exception{
		
		
		//java.util.Date dte_fecha = null;
		//java.util.Date dte_hora  = null;
		
		try{
			//dte_fecha = sdf_fecha.parse(str_Fecha);
		}catch(Exception e){
			//dte_fecha = new java.util.Date();
		}
		
		String str_mensaje = VOID;
		String query  = null;
		java.sql.PreparedStatement StatementRs = null;
		java.sql.ResultSet Rsquery = null;
		
		/**
		 *  revisa si ya existe el id_embarque, si ya lo incrementa
		 */
		query = 
				" SELECT *                         "+
				" FROM embarque                    "+
				" WHERE id_emb = "+str_Id_emb + "   ";
		if(DEBUG_ST){System.out.println(query); str_mensaje += query;}
		StatementRs = conn.prepareStatement(query);
		Rsquery = StatementRs.executeQuery();
		if (Rsquery.next()) {
			str_Id_emb = Integer.toString(Integer.parseInt(str_Id_emb.trim())+1);
		}
		Rsquery.close();

		
		String queryEmbarque = 
				" SELECT id_rutatrans                " +
				" FROM ruta_trans                    " +
				" WHERE ruta = "+str_Ruta+"           " +
				" AND transporte = "+str_Transporte+" " ;
		
		
		if(DEBUG_ST){System.out.println(queryEmbarque);str_mensaje += queryEmbarque;}
		PreparedStatement StatementRsEmbarque = conn.prepareStatement(queryEmbarque);
		ResultSet RsqueryEmbarque = StatementRsEmbarque.executeQuery();
		if (RsqueryEmbarque!=null && RsqueryEmbarque.next()) {
			query=
				" INSERT INTO embarque (                     	" +
				"							id_emb,fecha,    	" +
				"							hora,ruta,       	" +
				"							transporte,		 	" +
				"							proveedor) 		 	" +
				"	VALUES ("+str_Id_emb+", 						" +
				"		'"+str_Fecha+"',							" +
				"		'"+str_Hora+"',							" +
				"		 "+str_Ruta+",							" +
				"		 "+str_Transporte+",						" +
				"		 "+( str_Proveedor != null && !str_Proveedor.equals("") ? "'"+str_Proveedor+"'" : "null" )+")";
			 if(DEBUG_ST){System.out.print(query);str_mensaje += query;}
			StatementRs = conn.prepareStatement(query);
		   	StatementRs.executeUpdate();
		}else {
			str_mensaje = "No existe Costo para el Transporte de la Ruta seleccionada. \\nFavor de Insertar el Costo del Transporte en el Cat�logo de Rutas.";
		}
		return str_mensaje;
	}
	
	
	

	/**
	 * Inserta las unidades las unidades
	 * 
	 * @param ConnRs
	 * @throws Exception
	 */
	public static java.util.ArrayList guardar(
			Connection ConnRs, 
			java.util.ArrayList arrL_unidades,
			boolean bool_embarque) throws Exception{
		
		ConnRs.setAutoCommit(false);
		SimpleDateFormat sdfRequest = new SimpleDateFormat("dd/MM/yyyy");
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");

		String str_almacen 			= null;
		String str_Inicial          = null;
		String str_Numero           = null;
		String str_FechaCargaV      = null;
		String str_FechaCarga		= null;
		String str_Sellos 			= null;
		String str_ObservS 			= null;
		String str_OrigenP 			= null;
		String str_OrigenH 			= null;
		String str_Observ 			= null;
		String str_OrigenId 		= null;
		String str_MotLote 			= null;
		String str_OrigenCod 		= null;
		
		/*Para ver estatus
			status == 0  : Unidad sin modificacion
			status == 1  : Unidad con error al guardar
			status == 2  : Unidad guardo exitosamente
		*/
		
		int    status  = 0;
		String mensaje = "";
		boolean rowEven = true;
		
		String query ="";
		PreparedStatement StatementRs =null;
		ResultSet Rsquery = null;

		String str_motivoLote ="";
		boolean bol_almacenCompra = false;
		String str_almacenCompra = 
			" select id_lote                                                                 " +
			" from	 lote                                                                    " +
			" where	 codigo_baan + '-' + convert( varchar, anio ) = '"+str_motivoLote+"' and " +
			"	     almacen = "+str_almacen;
		 if(DEBUG_ST){System.out.print(query);}
		Statement stmt_almacenCompra = ConnRs.createStatement();
		ResultSet rs_almacenCompra = stmt_almacenCompra.executeQuery(str_almacenCompra);
		bol_almacenCompra = rs_almacenCompra.next();
		
		double dbl_peso = 0;
		
		KC.Unidad unidad = null;
		java.util.ListIterator lit_unidades =  arrL_unidades.listIterator();
		
		for(;lit_unidades.hasNext();){
			unidad = (KC.Unidad)lit_unidades.next();
			
			str_Inicial         = unidad.getStr_inicial();
			str_Numero          = unidad.getStr_numero();
			str_FechaCargaV     = "";
			str_FechaCarga		= "";
			str_Sellos 			= unidad.getStr_sello_origen();
			str_ObservS 		= "";
			str_OrigenP 		= "";
			str_OrigenH 		= "";
			str_Observ 			= "";
			str_OrigenId 		= "";
			str_MotLote 		= "";
			str_OrigenCod 		= "";
			
			rowEven = !rowEven;
			str_FechaCargaV = null;
			if( str_FechaCargaV == null ){
				str_FechaCargaV = null;
			}					
			str_FechaCarga = sdf.format(sdfRequest.parse(str_FechaCargaV));
			str_Inicial    = null;
			str_Numero     = null;
			str_Sellos     = null;
			str_ObservS    = null;
			str_OrigenP    = null;
			str_OrigenH    = null;
			str_Observ     = null;
			str_OrigenId   = null;
			str_MotLote    = null;
			str_OrigenCod  = null;
			
			if (str_OrigenH!=null && !str_OrigenH.equals("") && str_MotLote!=null && !str_MotLote.equals("")) {
				/**
				 * VERIFICA LA EXISTENCIA, SI HAY EXISTENCIA SUFICIENTE EN MOTIVO/LOTE
				 */
				String str_exis = 
					" SELECT existencia  - sum(isnull(PESO,0)) as existencia " 	+ 
					" FROM   VISTA_EXISTENCIA ve                             " 	+
					"             left join unidad u                         " 	+
					"		      on ve.almacen = u.almacen_origen and       " 	+
					"		         status = 'Patio Origen'                 " 	+
					"             left join lote_unidad lu                   " 	+
					"             on lu.lote = ve.lote and                   " 	+
					"                u.id_unidad = lu.unidad                 " 	+
					" WHERE almacen = "+str_almacen+" and                    " 	+
					"       ve.lote = "+ str_MotLote 							+
					" group by existencia                                    "	;

					Statement stmt_exis = ConnRs.createStatement();
					ResultSet rs_exis = stmt_exis.executeQuery(str_exis);

				double dbl_exis = 0;
					
				if(rs_exis.first()){
					dbl_exis = rs_exis.getDouble("existencia");				
					dbl_peso = Double.parseDouble(str_OrigenP);
				}
				if(bol_almacenCompra&&dbl_peso > dbl_exis){
					mensaje = "Peso mayor a la existencia y las tolvas en patio origen!";
					status = 1;
					dbl_peso -= Double.parseDouble(str_OrigenP);
					/*	out.print("<script>");
						out.print("alert('Error: Peso total es mayor a la existencia!');");
						out.print("history.go(-1);");
						out.print("</scripst>");					*/
				//FIN DE CHECAR EXISTENCIA
				}else{		
					// checa si existe unidad con la tolva en ese dia
					query = 
						" SELECT COUNT(*) AS si"+
						" FROM unidad"+
						" WHERE inicial='"+str_Inicial+"'"+
						" AND numero="+str_Numero+
						" AND fecha_carga='"+str_FechaCarga+"' and status <> 'Cancelado'";
					ResultSet rs_si = stmt_exis.executeQuery(query);		
					
					rs_si.first();
					if(rs_si.getInt("si")>0){
						mensaje = "Ya existe unidad con tolva '"+str_Inicial+""+str_Numero+"' el '"+str_FechaCarga+"'";
						status = 1;
						dbl_peso -= Double.parseDouble(str_OrigenP);
					}else{						
						// inserta la unidad
						query = 
							"		INSERT INTO unidad (				" +
							"					inicial, 				" +
							"					numero,					" +
							"					sellos,					" +
							"					observac_sellos,		" +
							"					peso_origen,			" +
							"					humedad_origen,			" +
							"					observaciones,			" +
							"					status,					" +
							"					fecha_carga,			" +
							"					almacen_origen,			" +
							"					liberacion,				" +
							"					embarque,				" +
							"					almacen_destino) 		" +
							"		VALUES (							" +
							"			'"+str_Inicial+"',				" +
							"			'"+str_Numero+"',				" +
							"			'"+str_Sellos+"',				" +
							"			'"+str_ObservS+"',				" +
							"            "+str_OrigenP+",  				" +
							"            "+str_OrigenH+",				" +
							"			'"+str_Observ+"',				" +
							"			'Patio Origen',					" +
							"			'"+str_FechaCarga+"',			" +
							"			 "+str_OrigenId+", 				" +
							"			null,							" +
							"			null,							" +	
							"			null)							";		
						StatementRs = ConnRs.prepareStatement(query);
						StatementRs.executeUpdate();

						// busca el id de la unidad
						query = "SELECT MAX(id_unidad) AS id_unidad FROM unidad";
						StatementRs=ConnRs.prepareStatement(query);
						Rsquery = StatementRs.executeQuery();
						if (Rsquery.next()) {
							query = 
								" INSERT INTO lote_unidad "+
								" (lote,unidad, peso) VALUES "+
								"("+null  /*request.getParameter("motLoteId"+x)*/ +","+Rsquery.getInt("id_unidad")+","+str_OrigenP+")";
							StatementRs = ConnRs.prepareStatement(query);
							StatementRs.executeUpdate();
						}
						Rsquery.close();
						mensaje = "Unidad guardada con exito!";
						status = 2;
					}//else para insertar unidad
				}//else checar existencia
			}//if (str_OrigenH!=null && !str_OrigenH.equals("") && str_MotLote!=null && !str_MotLote.equals(""))
			else {
				mensaje = "Unidad no capturada";
				status = 0;
			}
			System.out.println("<table width='90%' align='center' border='0' cellspacing='0' cellpadding='0'>");
			System.out.println("	<tr bgcolor='#"+(rowEven?"FFFFFF":"c1e1ff")+"'> ");
			System.out.println("		<td align='center' width='6%'>"+str_Inicial+"</td>");
			System.out.println("		<td align='center' width='8%'>"+str_Numero+"</td>");
			System.out.println("		<td align='center' width='12%'>"+str_Sellos+"</td>");
			System.out.println("		<td align='center' width='11%'>"+str_ObservS+"</td>");			
			System.out.println("		<td align='center' width='11%'>"+str_FechaCargaV+"</td>");			
			System.out.println("		<td align='center' width='6%'>"+str_OrigenCod+"</td>");
			System.out.println("		<td align='center' width='8%'>"+str_OrigenP+"</td>");
			System.out.println("		<td align='center' width='6%'>"+str_OrigenH+"</td>");
			System.out.println("		<td align='center' width='15%'>"+str_Observ+"</td>");
			System.out.println("		<td align='center' width='11%'>"+str_MotLote+"</td>");			
			System.out.println("		<td align='center' width='2%'><img alt=\""+mensaje+"\" src=\"images/Tolva"+(status==0?"SinModificacion":status==1?"ErrorGrabar":"GrabarOK")+".jpg\" border=\"0\" width=\"15\" height=\"15\"></td>");
			System.out.println("		</tr>");
			System.out.println("</table>");
		} 
		//for (int x = 1; x<=Integer.parseInt(parRows); x++)
		/*out.print("<script>");
		out.print("parent.mainFrame.location='unidades_lista.jsp';");
		//out.print("window.opener.location.reload();");
		//out.print("window.close();");
		out.print("</script>");*/
		ConnRs.commit();
		ConnRs.setAutoCommit(true);
		
		return arrL_unidades;
	}
	
	
	
	
	/**
	 * Valida las unidades para su inserccion
	 * 
	 * @param java.sql.Connection conn
	 * @param java.util.ArrayList arrL_unidad
	 * @return
	 */
	public static java.util.ArrayList validar(
					java.sql.Connection conn, 
					java.util.ArrayList arrL_unidad) throws Exception{
		
		//boolean bool_insertar      			= false;
		//String str_aflatoxinas 				= null;
		//String str_almacen					= null;
		//String str_grano_danado				= null;
		String str_humedad					= null;
		//String str_impurezas				= null;
		//String str_inicial					= null;	
		//String str_numero					= null;
		//String str_observaciones			= null;
		//String str_id						= null;
		String str_peso_destino				= null;
		//String str_peso_origen				= null;
		//String str_plaga_viva				= null;
		String str_dte_recepcion			= null;
		//String str_sello_origen				= null;
		//String str_temperatura				= null;
		String str_ticket_destino			= null;
		//String str_dte_analisis				= null;
		
		//boolean bool_aflatoxinas;
		//int int_almacen;
		//double dbl_grano_danado				= 0.00f;
		//double dbl_humedad					= 0.00f;
		//double dbl_impurezas				= 0.00f;
		//double dbl_peso_origen				= 0.00f;
		//double dbl_peso_destino				= 0.00f;
		//double dbl_temperatura				= 0.00f;
		//java.util.Calendar cal_analisis 	= null;
		java.util.Calendar cal_recepcion	= null;
		
		java.util.ListIterator lit_unidad = arrL_unidad.listIterator();
		while(lit_unidad.hasNext()){
			Unidad  u = (Unidad)lit_unidad.next();
			
			//bool_insertar 		= u.isBool_insertar();
			
			//str_aflatoxinas		= u.getStr_aflatoxinas();
			//str_almacen			= u.getStr_almacen();
			//str_grano_danado	= u.getStr_grano_danado();
			//str_humedad			= u.getStr_humedad();// Obligatorio
			//str_impurezas		= u.getStr_impurezas();
			//str_inicial			= u.getStr_inicial();	
			//str_numero			= u.getStr_numero();
			//str_observaciones	= u.getStr_observaciones();
			//str_id				= u.getStr_id();
			//str_peso_destino	= u.getStr_peso_destino();// Obligatorio
			//str_peso_origen		= u.getStr_peso_origen();
			//str_plaga_viva		= u.getStr_plaga_viva();
			//str_dte_recepcion	= u.getStr_dte_recepcion();	// Obligatorio
			//str_sello_origen	= u.getStr_sello_origen();
			//str_temperatura		= u.getStr_temperatura();
			//str_ticket_destino	= u.getStr_ticket_destino();// Obligatorio
			//str_dte_analisis	= u.getStr_dte_analisis();
			
			if(str_humedad == null || str_humedad.equals(VOID)){
				u.setBool_insertar(false);
			}else{
				//dbl_humedad = Double.parseDouble(str_humedad);
			}
			if(str_ticket_destino == null || str_ticket_destino.equals(VOID)){
				u.setBool_insertar(false);
			}
			if(str_dte_recepcion == null || str_dte_recepcion.equals(VOID)){
				u.setBool_insertar(false);
			}else{
				 cal_recepcion.setTime( sdf.parse(str_dte_recepcion) );
			}
			if(str_peso_destino == null || str_peso_destino.equals(VOID)){
				u.setBool_insertar(false);
			}else{
				Double.parseDouble(str_peso_destino);
			}
		}
		return arrL_unidad;
	}
	
	
	
	
	private boolean bool_aflatoxinas			= false;
	private boolean bool_insertar      			= false;
	private java.util.Calendar cal_analisis 	= null;
	private java.util.Calendar cal_recepcion	= null;
	private double dbl_grano_danado				= 0.00f;
	private double dbl_humedad					= 0.00f;
	private double dbl_impurezas				= 0.00f;
	private double dbl_peso_destino				= 0.00f;
	private double dbl_peso_origen				= 0.00f;
	private double dbl_temperatura				= 0.00f;	
	private int int_almacen;
	private String str_aflatoxinas 				= null;
	private String str_almacen 					= null;
	private String str_dte_analisis 			= null;
	private String str_dte_recepcion 			= null;
	private String str_grano_danado 			= null;
	private String str_humedad 					= null;
	private String str_id	 					= null;
	private String str_impurezas 				= null;
	private String str_inicial 					= null;
	private String str_numero 					= null;
	private String str_observaciones 			= null;
	private String str_peso_destino 			= null;
	private String str_peso_origen 				= null;
	private String str_plaga_viva 				= null;
	private String str_sello_origen 			= null;
	private String str_temperatura 				= null;
	private String str_ticket_destino			= null;
	private String str_mensaje					= null;
	
	
	
	
	/**
	 * 
	 * 
	 * @param bool_insertar
	 * @param str_id
	 * @param str_almacen
	 * @param str_inicial
	 * @param str_numero
	 * @param str_peso_origen
	 * @param str_sello_origen
	 * @param str_ticket_destino
	 * @param str_humedad
	 * @param str_peso_destino
	 * @param str_dte_recepcion
	 * @param str_dte_analisis
	 * @param str_impurezas
	 * @param str_aflatoxinas
	 * @param str_grano_danado
	 * @param str_plaga_viva
	 * @param str_temperatura
	 * @param str_observaciones
	 */
	public Unidad(	boolean bool_insertar, 
					String str_id, 
					String str_almacen,
					String str_inicial, 
					String str_numero, 
					String str_peso_origen,
					String str_sello_origen, 
					String str_ticket_destino,
					String str_humedad, 
					String str_peso_destino,
					String str_dte_recepcion, 
					String str_dte_analisis,
					String str_impurezas, 
					String str_aflatoxinas,
					String str_grano_danado, 
					String str_plaga_viva,
					String str_temperatura, 
					String str_observaciones) {
		
		this.bool_insertar 		= bool_insertar;
		this.str_id 			= str_id;
		this.str_almacen 		= str_almacen;
		this.str_inicial 		= str_inicial;
		this.str_numero 		= str_numero;
		this.str_peso_origen 	= str_peso_origen;
		this.str_sello_origen 	= str_sello_origen;
		this.str_ticket_destino = str_ticket_destino;
		this.str_humedad 		= str_humedad;
		this.str_peso_destino 	= str_peso_destino;
		this.str_dte_recepcion 	= str_dte_recepcion;
		this.str_dte_analisis 	= str_dte_analisis;
		this.str_impurezas 		= str_impurezas;
		this.str_aflatoxinas 	= str_aflatoxinas;
		this.str_grano_danado 	= str_grano_danado;
		this.str_plaga_viva 	= str_plaga_viva;
		this.str_temperatura 	= str_temperatura;
		this.str_observaciones 	= str_observaciones;
	}
	
	
	
	
	/**
	 * @return the cal_analisis
	 */
	public java.util.Calendar getCal_analisis() {
		return cal_analisis;
	}

	/**
	 * @return the cal_recepcion
	 */
	public java.util.Calendar getCal_recepcion() {
		return cal_recepcion;
	}

	/**
	 * @return the dbl_grano_danado
	 */
	public double getDbl_grano_danado() {
		return dbl_grano_danado;
	}

	/**
	 * @return the dbl_humedad
	 */
	public double getDbl_humedad() {
		return dbl_humedad;
	}

	/**
	 * @return the dbl_impurezas
	 */
	public double getDbl_impurezas() {
		return dbl_impurezas;
	}

	/**
	 * @return the dbl_peso_destino
	 */
	public double getDbl_peso_destino() {
		return dbl_peso_destino;
	}

	/**
	 * @return the dbl_peso_origen
	 */
	public double getDbl_peso_origen() {
		return dbl_peso_origen;
	}

	/**
	 * @return the dbl_temperatura
	 */
	public double getDbl_temperatura() {
		return dbl_temperatura;
	}

	/**
	 * @return the int_almacen
	 */
	public int getInt_almacen() {
		return int_almacen;
	}

	/**
	 * @return the str_aflatoxinas
	 */
	public String getStr_aflatoxinas() {
		return str_aflatoxinas;
	}

	/**
	 * @return the str_almacen
	 */
	public String getStr_almacen() {
		return str_almacen;
	}

	/**
	 * @return the str_dte_analisis
	 */
	public String getStr_dte_analisis() {
		return str_dte_analisis;
	}

	/**
	 * @return the str_dte_recepcion
	 */
	public String getStr_dte_recepcion() {
		return str_dte_recepcion;
	}

	/**
	 * @return the str_grano_danado
	 */
	public String getStr_grano_danado() {
		return str_grano_danado;
	}

	/**
	 * @return the str_humedad
	 */
	public String getStr_humedad() {
		return str_humedad;
	}

	/**
	 * @return the str_id
	 */
	public String getStr_id() {
		return str_id;
	}

	/**
	 * @return the str_impurezas
	 */
	public String getStr_impurezas() {
		return str_impurezas;
	}

	/**
	 * @return the str_inicial
	 */
	public String getStr_inicial() {
		return str_inicial;
	}

	/**
	 * @return the str_numero
	 */
	public String getStr_numero() {
		return str_numero;
	}

	/**
	 * @return the str_observaciones
	 */
	public String getStr_observaciones() {
		return str_observaciones;
	}

	/**
	 * @return the str_peso_destino
	 */
	public String getStr_peso_destino() {
		return str_peso_destino;
	}

	/**
	 * @return the str_peso_origen
	 */
	public String getStr_peso_origen() {
		return str_peso_origen;
	}

	/**
	 * @return the str_plaga_viva
	 */
	public String getStr_plaga_viva() {
		return str_plaga_viva;
	}

	/**
	 * @return the str_sello_origen
	 */
	public String getStr_sello_origen() {
		return str_sello_origen;
	}

	/**
	 * @return the str_temperatura
	 */
	public String getStr_temperatura() {
		return str_temperatura;
	}

	/**
	 * @return the str_ticket_destino
	 */
	public String getStr_ticket_destino() {
		return str_ticket_destino;
	}

	/**
	 * @return the bool_aflatoxinas
	 */
	public boolean isBool_aflatoxinas() {
		return bool_aflatoxinas;
	}

	/**
	 * @return the bool_insertar
	 */
	public boolean isBool_insertar() {
		return bool_insertar;
	}

	/**
	 * @param bool_insertar the bool_insertar to set
	 * @since version 2.0
	 */
	public void setBool_insertar(boolean bool_insertar) {
		this.bool_insertar = bool_insertar;
	}

	/**
	 * @return the str_mensaje
	 */
	public String getStr_mensaje() {
		return str_mensaje;
	}

	/**
	 * @param str_mensaje the str_mensaje to set
	 */
	public void setStr_mensaje(String str_mensaje) {
		this.str_mensaje = str_mensaje;
	};
	
	
	
	/**
	 * 
	 */
	public String toString() {
		final String SDF_FORMAT 		= "dd-MM-yyyy";
		final String SPC		 		= " ";
		java.text.SimpleDateFormat sdf 	= new java.text.SimpleDateFormat(SDF_FORMAT);
		
		String str_retVal = 
					"Aflatoxinas:	" 	+ SPC + String.valueOf(this.bool_aflatoxinas) 	+ 
					"Insertar:" 		+ SPC + String.valueOf(this.bool_insertar) 		+ 
					"Fecha Analisis: " 	+ SPC + sdf.format(this.cal_analisis)			+	
					"Fecha Recepcion:" 	+ SPC + this.cal_recepcion 						+
					"Grano Da�ado:" 	+ SPC + this.dbl_grano_danado					+
					"Humedad:" 			+ SPC + this.dbl_humedad 						+
					"Impurezas:" 		+ SPC + this.dbl_impurezas 						+ 
					"Peso Dstino:" 		+ SPC + this.dbl_peso_destino 					+ 
					"Peso Origen:" 		+ SPC + this.dbl_peso_origen 					+ 
					"Temperatura:" 		+ SPC + this.dbl_temperatura 					+ 
					"Id Almacen:" 		+ SPC + this.int_almacen 						+ 
					"Aflatoxinas:" 		+ SPC + this.str_aflatoxinas 					+ 
					"Almacen:" 			+ SPC + this.str_almacen 						+ 
					"Fecha Analisis:" 	+ SPC + this.str_dte_analisis 					+ 
					"Fecha Recepcion:" 	+ SPC + this.str_dte_recepcion					+
					"Grano Da�ado:" 	+ SPC + this.str_grano_danado					+
					"Humedad:" 			+ SPC + this.str_humedad						+
					"Id Unidad:" 		+ SPC + this.str_id								+
					"Impurezas:" 		+ SPC + this.str_impurezas						+
					"Inicales:" 		+ SPC + this.str_inicial 						+
					"Numero:" 			+ SPC + this.str_numero 						+
					"Observaciones:" 	+ SPC + this.str_observaciones 					+
					"Peso Destino:" 	+ SPC + this.str_peso_destino 					+
					"Peso Origen:" 		+ SPC + this.str_peso_origen 					+
					"Plaga Viva:" 		+ SPC + this.str_plaga_viva 					+
					"Sello Origen:" 	+ SPC + this.str_sello_origen 					+
					"Temperatura:" 		+ SPC + this.str_temperatura 					+
					"Ticket Destino:" 	+ SPC + this.str_ticket_destino					+
					"Mensaje Error:" 	+ SPC + this.str_mensaje						;

		return str_retVal;
	}

}